package com.cr.mrapp.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

@Controller
@RequestMapping("/upload")
public class FileUploadController {

    @RequestMapping("/upload.do")
    @ResponseBody
    public Object upload( MultipartFile file ){

        //1. 找一个位置保存这个图片
        String path =  System.getProperty("user.dir")+"\\upload\\";
        //这个目录不存在这创建
        File dir = new File(path);
        if( !dir.exists() ){
            dir.mkdirs();
        }
        //2. 重命名  abbf.afe.png
        if(file.getOriginalFilename()!=null){
            //截取文件名字
            int pointIndex = file.getOriginalFilename().lastIndexOf(".");
            String suffix = file.getOriginalFilename().substring(pointIndex);
            //重命名，随机一个不重复的名字
            String fileName = UUID.randomUUID().toString()+suffix;
            try {
                //保存文件
                file.transferTo( new File( dir ,  fileName ));
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
            //构造返回数据格式
            Map<String,Object> map = new HashMap<>();
            map.put("code",200);
            map.put("msg","上传成功");
            map.put("data","/upload/"+fileName);
            return  map ;
        }
        return null;
    }
}
